grammar SqlBase;// 声明语法头，类似Java中类的定义

//@header{package com.demo.java.antlr;} // 定义生成类中的包路径
// a = 3 * 2

prog : stat+ ;

stat: expr NEWLINE           # printExpr
    | ID '=' expr NEWLINE    # assign
    | NEWLINE                # blank
    ;

expr: expr op=('*'|'/') expr # MulDiv
    | expr op=('+'|'-') expr # AddSub
    | INT                    # int
    | ID                     # id
    | '(' expr ')'           # parens
    ;

ID : [a-zA-Z]+ ;
INT : [0-9]+ ;
NEWLINE : '\r' ? '\n' ;
WS : [ \t]+ -> skip ;
MUL : '*' ;
DIV : '/' ;
ADD : '+' ;
SUB : '-' ;
